import { message } from 'antd';
import { getAdjustEmpDetail, getPayDetail } from '@/services/adjusttasksend';

export default {
  state: {
    sendOrdAdjTaskId: null,
    updateBaseInfo: null, // 详情基本信息数据
    updateInsIde: null, // 缴费人员类别对象
    beginYm: null, // 生效日期
    editDesc: null, // 修改说明
    updateInsPdDecWage: null, // 社保申报工资
    updateAdjInsLocPkgList: null, // 社保组合
    updateAccuDecWage: null, // 公积金申报工资
    updateAccuLocPkg: null, // 公积金组合
    pdInfoDtos: null, // 产品服务信息
    protInfoDto: null, // 协议信息
    adjProtDetDto: null, // 协议更换信息
    addEmpDetSerDto: null, // 社保公积金信息
    assDetailDtoList: null, // 增加险种信息
    execStatusDto: null, // 执行状态
    dataDtos: null, // 材料信息
    addEmpDetContRecDto: null, // 联系记录
    handDto: null, // 办理备注
    payDetailList: [], // 缴纳明细
    navNum: '1', // 导航数量
    isUpdate: false, // 是否修改页面
    insIdeUpdateFlag: false, // 是否修改缴费人员类别
    insWageFlag: false, // 是否修改社保工资
    insSetFlag: 2, // 五险合不合一
    insLocFlag: false, // 是否修改社保组合
    accuWageFlag: false, // 是否修改公积金申报工资
    accuLocFlag: false, // 是否修改公积金组合
    coltFlag: 1, // 是否需要材料信息
  },
  effects: {
    // 详情数据
    *fetchEmpDetail({ payload }, { call, put }) {
      const response = yield call(getAdjustEmpDetail, payload);
      if (response.success) {
        const sortNumber = (a, b) => a.operLeafType - b.operLeafType;
        if (response.data.execStatusDto && response.data.execStatusDto.leafList) {
          response.data.execStatusDto.leafList = response.data.execStatusDto.leafList.sort(
            sortNumber
          );
        }
        yield put({
          type: 'updateModelData',
          payload: {
            ...payload,
            ...response.data,
          },
        });
      } else {
        message.warning(response.message || '获取人员信息：服务端错误');
      }
    },
    // 获取缴纳明细数据
    *fetchPayDetail({ payload }, { call, put }) {
      const response = yield call(getPayDetail, payload);
      if (response.success) {
        yield put({
          type: 'updateModelData',
          payload: { payDetailList: (response.data.length && response.data) || [] },
        });
      } else {
        message.warning(response.message || '获取缴费明细信息：服务端错误');
      }
    },
  },

  reducers: {
    // 设置修改当前state数据
    updateModelData(state, { payload }) {
      let num = 0;

      num = Object.keys(payload).length;
      return {
        ...state,
        ...payload,
        navNum: num,
      };
    },
    controlNavnum(state) {
      return {
        ...state,
        navNum: '1',
      };
    },
  },
};
